\hypertarget{class_q_c_p_graph}{}\section{Q\+C\+P\+Graph Class Reference}
\label{class_q_c_p_graph}\index{Q\+C\+P\+Graph@{Q\+C\+P\+Graph}}


A plottable representing a graph in a plot.  


Inheritance diagram for Q\+C\+P\+Graph\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=4.000000cm]{class_q_c_p_graph}
\end{center}
\end{figure}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
enum \mbox{\hyperlink{class_q_c_p_graph_ad60175cd9b5cac937c5ee685c32c0859}{Line\+Style}} \{ \newline
\mbox{\hyperlink{class_q_c_p_graph_ad60175cd9b5cac937c5ee685c32c0859aea9591b933733cc7b20786b71e60fa04}{ls\+None}}, 
\mbox{\hyperlink{class_q_c_p_graph_ad60175cd9b5cac937c5ee685c32c0859a3c42a27b15aa3c92d399082fad8b7515}{ls\+Line}}, 
\mbox{\hyperlink{class_q_c_p_graph_ad60175cd9b5cac937c5ee685c32c0859ae10568bda57836487d9dec5eba1d6c6e}{ls\+Step\+Left}}, 
\mbox{\hyperlink{class_q_c_p_graph_ad60175cd9b5cac937c5ee685c32c0859a9c37951f7d11aa070100fd16f2935c9e}{ls\+Step\+Right}}, 
\newline
\mbox{\hyperlink{class_q_c_p_graph_ad60175cd9b5cac937c5ee685c32c0859a5adf7b04da215a40a764c21294ea7366}{ls\+Step\+Center}}, 
\mbox{\hyperlink{class_q_c_p_graph_ad60175cd9b5cac937c5ee685c32c0859aa3b358b4ae7cca94aceeb8e529c12ebb}{ls\+Impulse}}
 \}
\item 
enum \mbox{\hyperlink{class_q_c_p_graph_ad23b514404bd2cb3216f57c90904d6af}{Error\+Type}} \{ \mbox{\hyperlink{class_q_c_p_graph_ad23b514404bd2cb3216f57c90904d6afaeae745e7cc1766bb8546e35d4b76a711}{et\+None}}, 
\mbox{\hyperlink{class_q_c_p_graph_ad23b514404bd2cb3216f57c90904d6afa2a5d89cd76fb8b6b18d71b8f6f6c0f43}{et\+Key}}, 
\mbox{\hyperlink{class_q_c_p_graph_ad23b514404bd2cb3216f57c90904d6afa147022ccdc49f6bd48f904cb4f61872e}{et\+Value}}, 
\mbox{\hyperlink{class_q_c_p_graph_ad23b514404bd2cb3216f57c90904d6afa761cb7d61670c1e2efecccd8974409ab}{et\+Both}}
 \}
\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{class_q_c_p_graph_a0393a38cf7183cbf46348eb6cf9a5a6c}{Q\+C\+P\+Graph}} (\mbox{\hyperlink{class_q_c_p_axis}{Q\+C\+P\+Axis}} $\ast$key\+Axis, \mbox{\hyperlink{class_q_c_p_axis}{Q\+C\+P\+Axis}} $\ast$value\+Axis)
\item 
\mbox{\hyperlink{qcustomplot_8h_a84a9c4a4c2216ccfdcb5f3067cda76e3}{Q\+C\+P\+Data\+Map}} $\ast$ \mbox{\hyperlink{class_q_c_p_graph_acde1c0d1f6a817930489548396e6b3e6}{data}} () const
\item 
\mbox{\Hypertarget{class_q_c_p_graph_ac3e6f4b3387338df45992b47691b2551}\label{class_q_c_p_graph_ac3e6f4b3387338df45992b47691b2551}} 
\mbox{\hyperlink{class_q_c_p_graph_ad60175cd9b5cac937c5ee685c32c0859}{Line\+Style}} {\bfseries line\+Style} () const
\item 
\mbox{\Hypertarget{class_q_c_p_graph_a36d5b641db08e27527827c212542bbbd}\label{class_q_c_p_graph_a36d5b641db08e27527827c212542bbbd}} 
\mbox{\hyperlink{class_q_c_p_scatter_style}{Q\+C\+P\+Scatter\+Style}} {\bfseries scatter\+Style} () const
\item 
\mbox{\Hypertarget{class_q_c_p_graph_a1efa62c4b826f34716b505b15d2b2583}\label{class_q_c_p_graph_a1efa62c4b826f34716b505b15d2b2583}} 
\mbox{\hyperlink{class_q_c_p_graph_ad23b514404bd2cb3216f57c90904d6af}{Error\+Type}} {\bfseries error\+Type} () const
\item 
\mbox{\Hypertarget{class_q_c_p_graph_abcf453d2c0d7a751d3a311a8b919b8d9}\label{class_q_c_p_graph_abcf453d2c0d7a751d3a311a8b919b8d9}} 
Q\+Pen {\bfseries error\+Pen} () const
\item 
\mbox{\Hypertarget{class_q_c_p_graph_a5b071344b150359aadb7be0b10b0eae9}\label{class_q_c_p_graph_a5b071344b150359aadb7be0b10b0eae9}} 
double {\bfseries error\+Bar\+Size} () const
\item 
\mbox{\Hypertarget{class_q_c_p_graph_a810db049eff26150c0bcead1bfbcf931}\label{class_q_c_p_graph_a810db049eff26150c0bcead1bfbcf931}} 
bool {\bfseries error\+Bar\+Skip\+Symbol} () const
\item 
\mbox{\Hypertarget{class_q_c_p_graph_a84277b1655474453a5c83318053414d5}\label{class_q_c_p_graph_a84277b1655474453a5c83318053414d5}} 
\mbox{\hyperlink{class_q_c_p_graph}{Q\+C\+P\+Graph}} $\ast$ {\bfseries channel\+Fill\+Graph} () const
\item 
\mbox{\Hypertarget{class_q_c_p_graph_a1ba934b9621270b9a40fcdd2d9ba2adb}\label{class_q_c_p_graph_a1ba934b9621270b9a40fcdd2d9ba2adb}} 
bool {\bfseries adaptive\+Sampling} () const
\item 
void \mbox{\hyperlink{class_q_c_p_graph_a1df2fd710545c8ba3b2c99a39a27bf8b}{set\+Data}} (\mbox{\hyperlink{qcustomplot_8h_a84a9c4a4c2216ccfdcb5f3067cda76e3}{Q\+C\+P\+Data\+Map}} $\ast$\mbox{\hyperlink{class_q_c_p_graph_acde1c0d1f6a817930489548396e6b3e6}{data}}, bool copy=false)
\item 
void \mbox{\hyperlink{class_q_c_p_graph_a4c55d8ac13bfa42c8c93747820891a76}{set\+Data}} (const Q\+Vector$<$ double $>$ \&key, const Q\+Vector$<$ double $>$ \&value)
\item 
void \mbox{\hyperlink{class_q_c_p_graph_abce9f07c0d722bc3e4fa7bd73c7e5dfa}{set\+Data\+Key\+Error}} (const Q\+Vector$<$ double $>$ \&key, const Q\+Vector$<$ double $>$ \&value, const Q\+Vector$<$ double $>$ \&key\+Error)
\item 
void \mbox{\hyperlink{class_q_c_p_graph_ac15c749c5fedf740d5692c6fe67143b8}{set\+Data\+Key\+Error}} (const Q\+Vector$<$ double $>$ \&key, const Q\+Vector$<$ double $>$ \&value, const Q\+Vector$<$ double $>$ \&key\+Error\+Minus, const Q\+Vector$<$ double $>$ \&key\+Error\+Plus)
\item 
void \mbox{\hyperlink{class_q_c_p_graph_acba6296eadcb36b93267628b8dae3de5}{set\+Data\+Value\+Error}} (const Q\+Vector$<$ double $>$ \&key, const Q\+Vector$<$ double $>$ \&value, const Q\+Vector$<$ double $>$ \&value\+Error)
\item 
void \mbox{\hyperlink{class_q_c_p_graph_a3afbfd7222d739351c69387904776f93}{set\+Data\+Value\+Error}} (const Q\+Vector$<$ double $>$ \&key, const Q\+Vector$<$ double $>$ \&value, const Q\+Vector$<$ double $>$ \&value\+Error\+Minus, const Q\+Vector$<$ double $>$ \&value\+Error\+Plus)
\item 
void \mbox{\hyperlink{class_q_c_p_graph_a873fe46bdb20be5710428e474ade8908}{set\+Data\+Both\+Error}} (const Q\+Vector$<$ double $>$ \&key, const Q\+Vector$<$ double $>$ \&value, const Q\+Vector$<$ double $>$ \&key\+Error, const Q\+Vector$<$ double $>$ \&value\+Error)
\item 
void \mbox{\hyperlink{class_q_c_p_graph_abb75736ecdbf6e6a7501e1da64fb18cf}{set\+Data\+Both\+Error}} (const Q\+Vector$<$ double $>$ \&key, const Q\+Vector$<$ double $>$ \&value, const Q\+Vector$<$ double $>$ \&key\+Error\+Minus, const Q\+Vector$<$ double $>$ \&key\+Error\+Plus, const Q\+Vector$<$ double $>$ \&value\+Error\+Minus, const Q\+Vector$<$ double $>$ \&value\+Error\+Plus)
\item 
void \mbox{\hyperlink{class_q_c_p_graph_a513fecccff5b2a50ce53f665338c60ff}{set\+Line\+Style}} (\mbox{\hyperlink{class_q_c_p_graph_ad60175cd9b5cac937c5ee685c32c0859}{Line\+Style}} ls)
\item 
void \mbox{\hyperlink{class_q_c_p_graph_a12bd17a8ba21983163ec5d8f42a9fea5}{set\+Scatter\+Style}} (const \mbox{\hyperlink{class_q_c_p_scatter_style}{Q\+C\+P\+Scatter\+Style}} \&style)
\item 
void \mbox{\hyperlink{class_q_c_p_graph_ac3614d799c3894f2bc646e99c7f73d38}{set\+Error\+Type}} (\mbox{\hyperlink{class_q_c_p_graph_ad23b514404bd2cb3216f57c90904d6af}{Error\+Type}} error\+Type)
\item 
void \mbox{\hyperlink{class_q_c_p_graph_abd4c7f81939e10776ea64603a704f22a}{set\+Error\+Pen}} (const Q\+Pen \&pen)
\item 
void \mbox{\hyperlink{class_q_c_p_graph_a10f50c5495ce45ef559ec2066194a335}{set\+Error\+Bar\+Size}} (double size)
\item 
void \mbox{\hyperlink{class_q_c_p_graph_ab1c1ee03d8dd94676a564e5e5f11aac2}{set\+Error\+Bar\+Skip\+Symbol}} (bool enabled)
\item 
void \mbox{\hyperlink{class_q_c_p_graph_a2d03156df1b64037a2e36cfa50351ca3}{set\+Channel\+Fill\+Graph}} (\mbox{\hyperlink{class_q_c_p_graph}{Q\+C\+P\+Graph}} $\ast$target\+Graph)
\item 
void \mbox{\hyperlink{class_q_c_p_graph_ab468cd600160f327836aa0644291e64c}{set\+Adaptive\+Sampling}} (bool enabled)
\item 
void \mbox{\hyperlink{class_q_c_p_graph_aa5c6181d84db72ce4dbe9dc15a34ef4f}{add\+Data}} (const \mbox{\hyperlink{qcustomplot_8h_a84a9c4a4c2216ccfdcb5f3067cda76e3}{Q\+C\+P\+Data\+Map}} \&data\+Map)
\item 
void \mbox{\hyperlink{class_q_c_p_graph_a80cc91e1e0ef77eb50afc5b366d0efd9}{add\+Data}} (const \mbox{\hyperlink{class_q_c_p_data}{Q\+C\+P\+Data}} \&\mbox{\hyperlink{class_q_c_p_graph_acde1c0d1f6a817930489548396e6b3e6}{data}})
\item 
void \mbox{\hyperlink{class_q_c_p_graph_a0bf98b1972286cfb7b1c4b7dd6ae2012}{add\+Data}} (double key, double value)
\item 
void \mbox{\hyperlink{class_q_c_p_graph_ab6da6377541fe80d892a9893a92db9c6}{add\+Data}} (const Q\+Vector$<$ double $>$ \&keys, const Q\+Vector$<$ double $>$ \&values)
\item 
void \mbox{\hyperlink{class_q_c_p_graph_a9fe0b3e54e8c7b61319bd03337e21e99}{remove\+Data\+Before}} (double key)
\item 
void \mbox{\hyperlink{class_q_c_p_graph_ae42d645ef617cfc75fc0df58e62c522a}{remove\+Data\+After}} (double key)
\item 
void \mbox{\hyperlink{class_q_c_p_graph_a4a0fde50b7db9db0a85b5c5b6b10098f}{remove\+Data}} (double from\+Key, double to\+Key)
\item 
void \mbox{\hyperlink{class_q_c_p_graph_a4a706020b4318f118381648ef18aca3f}{remove\+Data}} (double key)
\item 
virtual void \mbox{\hyperlink{class_q_c_p_graph_ad4e94a4e44e5e76fbec81a72a977157d}{clear\+Data}} ()
\item 
virtual double \mbox{\hyperlink{class_q_c_p_graph_a36011c34aca4f7a477de25961e2f6c13}{select\+Test}} (const Q\+PointF \&pos, bool only\+Selectable, Q\+Variant $\ast$details=0) const
\item 
void \mbox{\hyperlink{class_q_c_p_graph_a9c3909d6116e9d03978f057d41174e6a}{rescale\+Axes}} (bool only\+Enlarge, bool include\+Error\+Bars) const
\item 
void \mbox{\hyperlink{class_q_c_p_graph_a051fb77b459ba1ae8d65552c67f45e94}{rescale\+Key\+Axis}} (bool only\+Enlarge, bool include\+Error\+Bars) const
\item 
void \mbox{\hyperlink{class_q_c_p_graph_a9e0e620a56932c4df80a3762c2f93608}{rescale\+Value\+Axis}} (bool only\+Enlarge, bool include\+Error\+Bars) const
\item 
void \mbox{\hyperlink{class_q_c_p_graph_a1491c4a606bccd2d09e65e11b79eb882}{rescale\+Axes}} (bool only\+Enlarge=false) const
\item 
void \mbox{\hyperlink{class_q_c_p_graph_ae96b83c961e257da116c6acf9c7da308}{rescale\+Key\+Axis}} (bool only\+Enlarge=false) const
\item 
void \mbox{\hyperlink{class_q_c_p_graph_aa1e408bb2d13999150c3f7f8a8579ca9}{rescale\+Value\+Axis}} (bool only\+Enlarge=false) const
\end{DoxyCompactItemize}
\subsection*{Protected Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{class_q_c_p_graph_a659218cc62c2a7786213d9dd429c1c8d}\label{class_q_c_p_graph_a659218cc62c2a7786213d9dd429c1c8d}} 
virtual void {\bfseries draw} (\mbox{\hyperlink{class_q_c_p_painter}{Q\+C\+P\+Painter}} $\ast$painter)
\item 
\mbox{\Hypertarget{class_q_c_p_graph_ae962caca309faae29ce0988d0d0eff4b}\label{class_q_c_p_graph_ae962caca309faae29ce0988d0d0eff4b}} 
virtual void {\bfseries draw\+Legend\+Icon} (\mbox{\hyperlink{class_q_c_p_painter}{Q\+C\+P\+Painter}} $\ast$painter, const Q\+RectF \&rect) const
\item 
\mbox{\Hypertarget{class_q_c_p_graph_ad65bc571de3bd0af36296a3cbd0d77ee}\label{class_q_c_p_graph_ad65bc571de3bd0af36296a3cbd0d77ee}} 
virtual \mbox{\hyperlink{class_q_c_p_range}{Q\+C\+P\+Range}} {\bfseries get\+Key\+Range} (bool \&found\+Range, \mbox{\hyperlink{class_q_c_p_abstract_plottable_a661743478a1d3c09d28ec2711d7653d8}{Sign\+Domain}} in\+Sign\+Domain=\mbox{\hyperlink{class_q_c_p_abstract_plottable_a661743478a1d3c09d28ec2711d7653d8a082b98cfb91a7363a3b5cd17b0c1cd60}{sd\+Both}}) const
\item 
\mbox{\Hypertarget{class_q_c_p_graph_ac205efd80b4a70d67b163429dc6cba8d}\label{class_q_c_p_graph_ac205efd80b4a70d67b163429dc6cba8d}} 
virtual \mbox{\hyperlink{class_q_c_p_range}{Q\+C\+P\+Range}} {\bfseries get\+Value\+Range} (bool \&found\+Range, \mbox{\hyperlink{class_q_c_p_abstract_plottable_a661743478a1d3c09d28ec2711d7653d8}{Sign\+Domain}} in\+Sign\+Domain=\mbox{\hyperlink{class_q_c_p_abstract_plottable_a661743478a1d3c09d28ec2711d7653d8a082b98cfb91a7363a3b5cd17b0c1cd60}{sd\+Both}}) const
\item 
virtual \mbox{\hyperlink{class_q_c_p_range}{Q\+C\+P\+Range}} \mbox{\hyperlink{class_q_c_p_graph_ae6425d5df537c08159f794cb18c051c3}{get\+Key\+Range}} (bool \&found\+Range, \mbox{\hyperlink{class_q_c_p_abstract_plottable_a661743478a1d3c09d28ec2711d7653d8}{Sign\+Domain}} in\+Sign\+Domain, bool include\+Errors) const
\item 
virtual \mbox{\hyperlink{class_q_c_p_range}{Q\+C\+P\+Range}} \mbox{\hyperlink{class_q_c_p_graph_ac23c7702ca836c7055f48e6fc3295ca4}{get\+Value\+Range}} (bool \&found\+Range, \mbox{\hyperlink{class_q_c_p_abstract_plottable_a661743478a1d3c09d28ec2711d7653d8}{Sign\+Domain}} in\+Sign\+Domain, bool include\+Errors) const
\item 
\mbox{\Hypertarget{class_q_c_p_graph_a9e6ce6db9aa7b29fc397c724fcf7b126}\label{class_q_c_p_graph_a9e6ce6db9aa7b29fc397c724fcf7b126}} 
virtual void {\bfseries draw\+Fill} (\mbox{\hyperlink{class_q_c_p_painter}{Q\+C\+P\+Painter}} $\ast$painter, Q\+Vector$<$ Q\+PointF $>$ $\ast$line\+Data) const
\item 
\mbox{\Hypertarget{class_q_c_p_graph_ae1f3edd5eb41aa5782e61673488fd3e0}\label{class_q_c_p_graph_ae1f3edd5eb41aa5782e61673488fd3e0}} 
virtual void {\bfseries draw\+Scatter\+Plot} (\mbox{\hyperlink{class_q_c_p_painter}{Q\+C\+P\+Painter}} $\ast$painter, Q\+Vector$<$ \mbox{\hyperlink{class_q_c_p_data}{Q\+C\+P\+Data}} $>$ $\ast$scatter\+Data) const
\item 
\mbox{\Hypertarget{class_q_c_p_graph_af460db06d4d6466806721fe101f512e3}\label{class_q_c_p_graph_af460db06d4d6466806721fe101f512e3}} 
virtual void {\bfseries draw\+Line\+Plot} (\mbox{\hyperlink{class_q_c_p_painter}{Q\+C\+P\+Painter}} $\ast$painter, Q\+Vector$<$ Q\+PointF $>$ $\ast$line\+Data) const
\item 
\mbox{\Hypertarget{class_q_c_p_graph_ac62c84f51d85b78ee583455b8c37ba56}\label{class_q_c_p_graph_ac62c84f51d85b78ee583455b8c37ba56}} 
virtual void {\bfseries draw\+Impulse\+Plot} (\mbox{\hyperlink{class_q_c_p_painter}{Q\+C\+P\+Painter}} $\ast$painter, Q\+Vector$<$ Q\+PointF $>$ $\ast$line\+Data) const
\item 
\mbox{\Hypertarget{class_q_c_p_graph_ae853c297da9d21b6720d2d1c3b0121bf}\label{class_q_c_p_graph_ae853c297da9d21b6720d2d1c3b0121bf}} 
void {\bfseries get\+Prepared\+Data} (Q\+Vector$<$ \mbox{\hyperlink{class_q_c_p_data}{Q\+C\+P\+Data}} $>$ $\ast$line\+Data, Q\+Vector$<$ \mbox{\hyperlink{class_q_c_p_data}{Q\+C\+P\+Data}} $>$ $\ast$scatter\+Data) const
\item 
\mbox{\Hypertarget{class_q_c_p_graph_a5ec495f97b8185ba9712430cb1558f52}\label{class_q_c_p_graph_a5ec495f97b8185ba9712430cb1558f52}} 
void {\bfseries get\+Plot\+Data} (Q\+Vector$<$ Q\+PointF $>$ $\ast$line\+Data, Q\+Vector$<$ \mbox{\hyperlink{class_q_c_p_data}{Q\+C\+P\+Data}} $>$ $\ast$scatter\+Data) const
\item 
\mbox{\Hypertarget{class_q_c_p_graph_a6ea929da420e6c104998060d19740ed6}\label{class_q_c_p_graph_a6ea929da420e6c104998060d19740ed6}} 
void {\bfseries get\+Scatter\+Plot\+Data} (Q\+Vector$<$ \mbox{\hyperlink{class_q_c_p_data}{Q\+C\+P\+Data}} $>$ $\ast$scatter\+Data) const
\item 
\mbox{\Hypertarget{class_q_c_p_graph_a77314984a7af578a66e939db0db48556}\label{class_q_c_p_graph_a77314984a7af578a66e939db0db48556}} 
void {\bfseries get\+Line\+Plot\+Data} (Q\+Vector$<$ Q\+PointF $>$ $\ast$line\+Pixel\+Data, Q\+Vector$<$ \mbox{\hyperlink{class_q_c_p_data}{Q\+C\+P\+Data}} $>$ $\ast$scatter\+Data) const
\item 
\mbox{\Hypertarget{class_q_c_p_graph_a8f8ae9cb4aa312c2085c3f6f298f19d4}\label{class_q_c_p_graph_a8f8ae9cb4aa312c2085c3f6f298f19d4}} 
void {\bfseries get\+Step\+Left\+Plot\+Data} (Q\+Vector$<$ Q\+PointF $>$ $\ast$line\+Pixel\+Data, Q\+Vector$<$ \mbox{\hyperlink{class_q_c_p_data}{Q\+C\+P\+Data}} $>$ $\ast$scatter\+Data) const
\item 
\mbox{\Hypertarget{class_q_c_p_graph_a59fecb135f47db10e14d75018210bf80}\label{class_q_c_p_graph_a59fecb135f47db10e14d75018210bf80}} 
void {\bfseries get\+Step\+Right\+Plot\+Data} (Q\+Vector$<$ Q\+PointF $>$ $\ast$line\+Pixel\+Data, Q\+Vector$<$ \mbox{\hyperlink{class_q_c_p_data}{Q\+C\+P\+Data}} $>$ $\ast$scatter\+Data) const
\item 
\mbox{\Hypertarget{class_q_c_p_graph_ab860d67ecc7e2d7253ab1f19032958c2}\label{class_q_c_p_graph_ab860d67ecc7e2d7253ab1f19032958c2}} 
void {\bfseries get\+Step\+Center\+Plot\+Data} (Q\+Vector$<$ Q\+PointF $>$ $\ast$line\+Pixel\+Data, Q\+Vector$<$ \mbox{\hyperlink{class_q_c_p_data}{Q\+C\+P\+Data}} $>$ $\ast$scatter\+Data) const
\item 
\mbox{\Hypertarget{class_q_c_p_graph_aae73c001a78cbe54e55e6779d7a70957}\label{class_q_c_p_graph_aae73c001a78cbe54e55e6779d7a70957}} 
void {\bfseries get\+Impulse\+Plot\+Data} (Q\+Vector$<$ Q\+PointF $>$ $\ast$line\+Pixel\+Data, Q\+Vector$<$ \mbox{\hyperlink{class_q_c_p_data}{Q\+C\+P\+Data}} $>$ $\ast$scatter\+Data) const
\item 
\mbox{\Hypertarget{class_q_c_p_graph_ab51aeba7e9d29754e58852cfad3436cc}\label{class_q_c_p_graph_ab51aeba7e9d29754e58852cfad3436cc}} 
void {\bfseries draw\+Error} (\mbox{\hyperlink{class_q_c_p_painter}{Q\+C\+P\+Painter}} $\ast$painter, double x, double y, const \mbox{\hyperlink{class_q_c_p_data}{Q\+C\+P\+Data}} \&\mbox{\hyperlink{class_q_c_p_graph_acde1c0d1f6a817930489548396e6b3e6}{data}}) const
\item 
\mbox{\Hypertarget{class_q_c_p_graph_abda485a2f71ebe00d890840acbb91516}\label{class_q_c_p_graph_abda485a2f71ebe00d890840acbb91516}} 
void {\bfseries get\+Visible\+Data\+Bounds} (Q\+C\+P\+Data\+Map\+::const\+\_\+iterator \&lower, Q\+C\+P\+Data\+Map\+::const\+\_\+iterator \&upper) const
\item 
\mbox{\Hypertarget{class_q_c_p_graph_ae413e4ea50fea821a48ee2b3c4aaa055}\label{class_q_c_p_graph_ae413e4ea50fea821a48ee2b3c4aaa055}} 
int {\bfseries count\+Data\+In\+Bounds} (const Q\+C\+P\+Data\+Map\+::const\+\_\+iterator \&lower, const Q\+C\+P\+Data\+Map\+::const\+\_\+iterator \&upper, int max\+Count) const
\item 
\mbox{\Hypertarget{class_q_c_p_graph_a8e517dcd3baba1b41daed0248841c092}\label{class_q_c_p_graph_a8e517dcd3baba1b41daed0248841c092}} 
void {\bfseries add\+Fill\+Base\+Points} (Q\+Vector$<$ Q\+PointF $>$ $\ast$line\+Data) const
\item 
\mbox{\Hypertarget{class_q_c_p_graph_aff2ae149f6d319fc3ed2c7c6fb348553}\label{class_q_c_p_graph_aff2ae149f6d319fc3ed2c7c6fb348553}} 
void {\bfseries remove\+Fill\+Base\+Points} (Q\+Vector$<$ Q\+PointF $>$ $\ast$line\+Data) const
\item 
\mbox{\Hypertarget{class_q_c_p_graph_ace7c17a07e9aa824853e469816a5aa1c}\label{class_q_c_p_graph_ace7c17a07e9aa824853e469816a5aa1c}} 
Q\+PointF {\bfseries lower\+Fill\+Base\+Point} (double lower\+Key) const
\item 
\mbox{\Hypertarget{class_q_c_p_graph_a7a255fc7260d96ed6f9d972839941f93}\label{class_q_c_p_graph_a7a255fc7260d96ed6f9d972839941f93}} 
Q\+PointF {\bfseries upper\+Fill\+Base\+Point} (double upper\+Key) const
\item 
\mbox{\Hypertarget{class_q_c_p_graph_add26655bd2338adaa7fc99e27bd06550}\label{class_q_c_p_graph_add26655bd2338adaa7fc99e27bd06550}} 
const Q\+PolygonF {\bfseries get\+Channel\+Fill\+Polygon} (const Q\+Vector$<$ Q\+PointF $>$ $\ast$line\+Data) const
\item 
\mbox{\Hypertarget{class_q_c_p_graph_a8c3f15dd5a06633011a6ef36016d308b}\label{class_q_c_p_graph_a8c3f15dd5a06633011a6ef36016d308b}} 
int {\bfseries find\+Index\+BelowX} (const Q\+Vector$<$ Q\+PointF $>$ $\ast$\mbox{\hyperlink{class_q_c_p_graph_acde1c0d1f6a817930489548396e6b3e6}{data}}, double x) const
\item 
\mbox{\Hypertarget{class_q_c_p_graph_aaabd6c6a7200a2672c44e62bd2a1cafa}\label{class_q_c_p_graph_aaabd6c6a7200a2672c44e62bd2a1cafa}} 
int {\bfseries find\+Index\+AboveX} (const Q\+Vector$<$ Q\+PointF $>$ $\ast$\mbox{\hyperlink{class_q_c_p_graph_acde1c0d1f6a817930489548396e6b3e6}{data}}, double x) const
\item 
\mbox{\Hypertarget{class_q_c_p_graph_a5b0291f248e8ca8eaa82833ab420dcd0}\label{class_q_c_p_graph_a5b0291f248e8ca8eaa82833ab420dcd0}} 
int {\bfseries find\+Index\+BelowY} (const Q\+Vector$<$ Q\+PointF $>$ $\ast$\mbox{\hyperlink{class_q_c_p_graph_acde1c0d1f6a817930489548396e6b3e6}{data}}, double y) const
\item 
\mbox{\Hypertarget{class_q_c_p_graph_a8b952a5f937840dc242489585cc8000d}\label{class_q_c_p_graph_a8b952a5f937840dc242489585cc8000d}} 
int {\bfseries find\+Index\+AboveY} (const Q\+Vector$<$ Q\+PointF $>$ $\ast$\mbox{\hyperlink{class_q_c_p_graph_acde1c0d1f6a817930489548396e6b3e6}{data}}, double y) const
\item 
\mbox{\Hypertarget{class_q_c_p_graph_a96146099a5e68f49c7326a765f768da2}\label{class_q_c_p_graph_a96146099a5e68f49c7326a765f768da2}} 
double {\bfseries point\+Distance} (const Q\+PointF \&pixel\+Point) const
\end{DoxyCompactItemize}
\subsection*{Protected Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{class_q_c_p_graph_a8457c840f69a0ac49f61d30a509c5d08}\label{class_q_c_p_graph_a8457c840f69a0ac49f61d30a509c5d08}} 
\mbox{\hyperlink{qcustomplot_8h_a84a9c4a4c2216ccfdcb5f3067cda76e3}{Q\+C\+P\+Data\+Map}} $\ast$ {\bfseries m\+Data}
\item 
\mbox{\Hypertarget{class_q_c_p_graph_aa35681a24165c2831301091a87b662ce}\label{class_q_c_p_graph_aa35681a24165c2831301091a87b662ce}} 
Q\+Pen {\bfseries m\+Error\+Pen}
\item 
\mbox{\Hypertarget{class_q_c_p_graph_a8604fd98402035a63375849f7341ee25}\label{class_q_c_p_graph_a8604fd98402035a63375849f7341ee25}} 
\mbox{\hyperlink{class_q_c_p_graph_ad60175cd9b5cac937c5ee685c32c0859}{Line\+Style}} {\bfseries m\+Line\+Style}
\item 
\mbox{\Hypertarget{class_q_c_p_graph_a4aa36241f166ccd1f75fc8f24e4a3247}\label{class_q_c_p_graph_a4aa36241f166ccd1f75fc8f24e4a3247}} 
\mbox{\hyperlink{class_q_c_p_scatter_style}{Q\+C\+P\+Scatter\+Style}} {\bfseries m\+Scatter\+Style}
\item 
\mbox{\Hypertarget{class_q_c_p_graph_a29e64273db201aeadebc61c870720a36}\label{class_q_c_p_graph_a29e64273db201aeadebc61c870720a36}} 
\mbox{\hyperlink{class_q_c_p_graph_ad23b514404bd2cb3216f57c90904d6af}{Error\+Type}} {\bfseries m\+Error\+Type}
\item 
\mbox{\Hypertarget{class_q_c_p_graph_a7b51c8d09510f9d195b5e765ccbcf05b}\label{class_q_c_p_graph_a7b51c8d09510f9d195b5e765ccbcf05b}} 
double {\bfseries m\+Error\+Bar\+Size}
\item 
\mbox{\Hypertarget{class_q_c_p_graph_acf631d7dbd1055a69ab3b63094868557}\label{class_q_c_p_graph_acf631d7dbd1055a69ab3b63094868557}} 
bool {\bfseries m\+Error\+Bar\+Skip\+Symbol}
\item 
\mbox{\Hypertarget{class_q_c_p_graph_a2f1777c7accf8244fc640c33f0b04577}\label{class_q_c_p_graph_a2f1777c7accf8244fc640c33f0b04577}} 
Q\+Pointer$<$ \mbox{\hyperlink{class_q_c_p_graph}{Q\+C\+P\+Graph}} $>$ {\bfseries m\+Channel\+Fill\+Graph}
\item 
\mbox{\Hypertarget{class_q_c_p_graph_aa951e78aeba714cf443be6da2e52502e}\label{class_q_c_p_graph_aa951e78aeba714cf443be6da2e52502e}} 
bool {\bfseries m\+Adaptive\+Sampling}
\end{DoxyCompactItemize}
\subsection*{Friends}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{class_q_c_p_graph_a1cdf9df76adcfae45261690aa0ca2198}\label{class_q_c_p_graph_a1cdf9df76adcfae45261690aa0ca2198}} 
class {\bfseries Q\+Custom\+Plot}
\item 
\mbox{\Hypertarget{class_q_c_p_graph_a8429035e7adfbd7f05805a6530ad5e3b}\label{class_q_c_p_graph_a8429035e7adfbd7f05805a6530ad5e3b}} 
class {\bfseries Q\+C\+P\+Legend}
\end{DoxyCompactItemize}
\subsection*{Additional Inherited Members}


\subsection{Detailed Description}
A plottable representing a graph in a plot. 



Usually \mbox{\hyperlink{class_q_custom_plot}{Q\+Custom\+Plot}} creates graphs internally via \mbox{\hyperlink{class_q_custom_plot_a6fb2873d35a8a8089842d81a70a54167}{Q\+Custom\+Plot\+::add\+Graph}} and the resulting instance is accessed via \mbox{\hyperlink{class_q_custom_plot_a6ecae130f684b25276fb47bd3a5875c6}{Q\+Custom\+Plot\+::graph}}.

To plot data, assign it with the \mbox{\hyperlink{class_q_c_p_graph_a1df2fd710545c8ba3b2c99a39a27bf8b}{set\+Data}} or \mbox{\hyperlink{class_q_c_p_graph_aa5c6181d84db72ce4dbe9dc15a34ef4f}{add\+Data}} functions. Alternatively, you can also access and modify the graph\textquotesingle{}s data via the \mbox{\hyperlink{class_q_c_p_graph_acde1c0d1f6a817930489548396e6b3e6}{data}} method, which returns a pointer to the internal \mbox{\hyperlink{qcustomplot_8h_a84a9c4a4c2216ccfdcb5f3067cda76e3}{Q\+C\+P\+Data\+Map}}.

Graphs are used to display single-\/valued data. Single-\/valued means that there should only be one data point per unique key coordinate. In other words, the graph can\textquotesingle{}t have {\itshape loops}. If you do want to plot non-\/single-\/valued curves, rather use the \mbox{\hyperlink{class_q_c_p_curve}{Q\+C\+P\+Curve}} plottable.

Gaps in the graph line can be created by adding data points with NaN as value ({\ttfamily q\+Q\+Na\+N()} or {\ttfamily std\+::numeric\+\_\+limits$<$double$>$\+::quiet\+\_\+\+Na\+N()}) in between the two data points that shall be separated.\hypertarget{class_q_c_p_statistical_box_appearance}{}\subsection{Changing the appearance}\label{class_q_c_p_statistical_box_appearance}
The appearance of the graph is mainly determined by the line style, scatter style, brush and pen of the graph (\mbox{\hyperlink{class_q_c_p_graph_a513fecccff5b2a50ce53f665338c60ff}{set\+Line\+Style}}, \mbox{\hyperlink{class_q_c_p_graph_a12bd17a8ba21983163ec5d8f42a9fea5}{set\+Scatter\+Style}}, \mbox{\hyperlink{class_q_c_p_abstract_plottable_a7a4b92144dca6453a1f0f210e27edc74}{set\+Brush}}, \mbox{\hyperlink{class_q_c_p_abstract_plottable_ab74b09ae4c0e7e13142fe4b5bf46cac7}{set\+Pen}}).\hypertarget{class_q_c_p_graph_filling}{}\subsubsection{Filling under or between graphs}\label{class_q_c_p_graph_filling}
\mbox{\hyperlink{class_q_c_p_graph}{Q\+C\+P\+Graph}} knows two types of fills\+: Normal graph fills towards the zero-\/value-\/line parallel to the key axis of the graph, and fills between two graphs, called channel fills. To enable a fill, just set a brush with \mbox{\hyperlink{class_q_c_p_abstract_plottable_a7a4b92144dca6453a1f0f210e27edc74}{set\+Brush}} which is neither Qt\+::\+No\+Brush nor fully transparent.

By default, a normal fill towards the zero-\/value-\/line will be drawn. To set up a channel fill between this graph and another one, call \mbox{\hyperlink{class_q_c_p_graph_a2d03156df1b64037a2e36cfa50351ca3}{set\+Channel\+Fill\+Graph}} with the other graph as parameter.

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{class_q_custom_plot_a6fb2873d35a8a8089842d81a70a54167}{Q\+Custom\+Plot\+::add\+Graph}}, \mbox{\hyperlink{class_q_custom_plot_a6ecae130f684b25276fb47bd3a5875c6}{Q\+Custom\+Plot\+::graph}} 
\end{DoxySeeAlso}


\subsection{Member Enumeration Documentation}
\mbox{\Hypertarget{class_q_c_p_graph_ad23b514404bd2cb3216f57c90904d6af}\label{class_q_c_p_graph_ad23b514404bd2cb3216f57c90904d6af}} 
\index{Q\+C\+P\+Graph@{Q\+C\+P\+Graph}!Error\+Type@{Error\+Type}}
\index{Error\+Type@{Error\+Type}!Q\+C\+P\+Graph@{Q\+C\+P\+Graph}}
\subsubsection{\texorpdfstring{Error\+Type}{ErrorType}}
{\footnotesize\ttfamily enum \mbox{\hyperlink{class_q_c_p_graph_ad23b514404bd2cb3216f57c90904d6af}{Q\+C\+P\+Graph\+::\+Error\+Type}}}

Defines what kind of error bars are drawn for each data point \begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{et\+None@{et\+None}!Q\+C\+P\+Graph@{Q\+C\+P\+Graph}}\index{Q\+C\+P\+Graph@{Q\+C\+P\+Graph}!et\+None@{et\+None}}}\mbox{\Hypertarget{class_q_c_p_graph_ad23b514404bd2cb3216f57c90904d6afaeae745e7cc1766bb8546e35d4b76a711}\label{class_q_c_p_graph_ad23b514404bd2cb3216f57c90904d6afaeae745e7cc1766bb8546e35d4b76a711}} 
et\+None&No error bars are shown. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{et\+Key@{et\+Key}!Q\+C\+P\+Graph@{Q\+C\+P\+Graph}}\index{Q\+C\+P\+Graph@{Q\+C\+P\+Graph}!et\+Key@{et\+Key}}}\mbox{\Hypertarget{class_q_c_p_graph_ad23b514404bd2cb3216f57c90904d6afa2a5d89cd76fb8b6b18d71b8f6f6c0f43}\label{class_q_c_p_graph_ad23b514404bd2cb3216f57c90904d6afa2a5d89cd76fb8b6b18d71b8f6f6c0f43}} 
et\+Key&Error bars for the key dimension of the data point are shown. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{et\+Value@{et\+Value}!Q\+C\+P\+Graph@{Q\+C\+P\+Graph}}\index{Q\+C\+P\+Graph@{Q\+C\+P\+Graph}!et\+Value@{et\+Value}}}\mbox{\Hypertarget{class_q_c_p_graph_ad23b514404bd2cb3216f57c90904d6afa147022ccdc49f6bd48f904cb4f61872e}\label{class_q_c_p_graph_ad23b514404bd2cb3216f57c90904d6afa147022ccdc49f6bd48f904cb4f61872e}} 
et\+Value&Error bars for the value dimension of the data point are shown. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{et\+Both@{et\+Both}!Q\+C\+P\+Graph@{Q\+C\+P\+Graph}}\index{Q\+C\+P\+Graph@{Q\+C\+P\+Graph}!et\+Both@{et\+Both}}}\mbox{\Hypertarget{class_q_c_p_graph_ad23b514404bd2cb3216f57c90904d6afa761cb7d61670c1e2efecccd8974409ab}\label{class_q_c_p_graph_ad23b514404bd2cb3216f57c90904d6afa761cb7d61670c1e2efecccd8974409ab}} 
et\+Both&Error bars for both key and value dimensions of the data point are shown. \\
\hline

\end{DoxyEnumFields}
\mbox{\Hypertarget{class_q_c_p_graph_ad60175cd9b5cac937c5ee685c32c0859}\label{class_q_c_p_graph_ad60175cd9b5cac937c5ee685c32c0859}} 
\index{Q\+C\+P\+Graph@{Q\+C\+P\+Graph}!Line\+Style@{Line\+Style}}
\index{Line\+Style@{Line\+Style}!Q\+C\+P\+Graph@{Q\+C\+P\+Graph}}
\subsubsection{\texorpdfstring{Line\+Style}{LineStyle}}
{\footnotesize\ttfamily enum \mbox{\hyperlink{class_q_c_p_graph_ad60175cd9b5cac937c5ee685c32c0859}{Q\+C\+P\+Graph\+::\+Line\+Style}}}

Defines how the graph\textquotesingle{}s line is represented visually in the plot. The line is drawn with the current pen of the graph (\mbox{\hyperlink{class_q_c_p_abstract_plottable_ab74b09ae4c0e7e13142fe4b5bf46cac7}{set\+Pen}}). \begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{class_q_c_p_graph_a513fecccff5b2a50ce53f665338c60ff}{set\+Line\+Style}} 
\end{DoxySeeAlso}
\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{ls\+None@{ls\+None}!Q\+C\+P\+Graph@{Q\+C\+P\+Graph}}\index{Q\+C\+P\+Graph@{Q\+C\+P\+Graph}!ls\+None@{ls\+None}}}\mbox{\Hypertarget{class_q_c_p_graph_ad60175cd9b5cac937c5ee685c32c0859aea9591b933733cc7b20786b71e60fa04}\label{class_q_c_p_graph_ad60175cd9b5cac937c5ee685c32c0859aea9591b933733cc7b20786b71e60fa04}} 
ls\+None&with symbols according to the scatter style, see \mbox{\hyperlink{class_q_c_p_graph_a12bd17a8ba21983163ec5d8f42a9fea5}{set\+Scatter\+Style}}) data points are not connected with any lines (e.\+g. data only represented \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{ls\+Line@{ls\+Line}!Q\+C\+P\+Graph@{Q\+C\+P\+Graph}}\index{Q\+C\+P\+Graph@{Q\+C\+P\+Graph}!ls\+Line@{ls\+Line}}}\mbox{\Hypertarget{class_q_c_p_graph_ad60175cd9b5cac937c5ee685c32c0859a3c42a27b15aa3c92d399082fad8b7515}\label{class_q_c_p_graph_ad60175cd9b5cac937c5ee685c32c0859a3c42a27b15aa3c92d399082fad8b7515}} 
ls\+Line&data points are connected by a straight line \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{ls\+Step\+Left@{ls\+Step\+Left}!Q\+C\+P\+Graph@{Q\+C\+P\+Graph}}\index{Q\+C\+P\+Graph@{Q\+C\+P\+Graph}!ls\+Step\+Left@{ls\+Step\+Left}}}\mbox{\Hypertarget{class_q_c_p_graph_ad60175cd9b5cac937c5ee685c32c0859ae10568bda57836487d9dec5eba1d6c6e}\label{class_q_c_p_graph_ad60175cd9b5cac937c5ee685c32c0859ae10568bda57836487d9dec5eba1d6c6e}} 
ls\+Step\+Left&line is drawn as steps where the step height is the value of the left data point \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{ls\+Step\+Right@{ls\+Step\+Right}!Q\+C\+P\+Graph@{Q\+C\+P\+Graph}}\index{Q\+C\+P\+Graph@{Q\+C\+P\+Graph}!ls\+Step\+Right@{ls\+Step\+Right}}}\mbox{\Hypertarget{class_q_c_p_graph_ad60175cd9b5cac937c5ee685c32c0859a9c37951f7d11aa070100fd16f2935c9e}\label{class_q_c_p_graph_ad60175cd9b5cac937c5ee685c32c0859a9c37951f7d11aa070100fd16f2935c9e}} 
ls\+Step\+Right&line is drawn as steps where the step height is the value of the right data point \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{ls\+Step\+Center@{ls\+Step\+Center}!Q\+C\+P\+Graph@{Q\+C\+P\+Graph}}\index{Q\+C\+P\+Graph@{Q\+C\+P\+Graph}!ls\+Step\+Center@{ls\+Step\+Center}}}\mbox{\Hypertarget{class_q_c_p_graph_ad60175cd9b5cac937c5ee685c32c0859a5adf7b04da215a40a764c21294ea7366}\label{class_q_c_p_graph_ad60175cd9b5cac937c5ee685c32c0859a5adf7b04da215a40a764c21294ea7366}} 
ls\+Step\+Center&line is drawn as steps where the step is in between two data points \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{ls\+Impulse@{ls\+Impulse}!Q\+C\+P\+Graph@{Q\+C\+P\+Graph}}\index{Q\+C\+P\+Graph@{Q\+C\+P\+Graph}!ls\+Impulse@{ls\+Impulse}}}\mbox{\Hypertarget{class_q_c_p_graph_ad60175cd9b5cac937c5ee685c32c0859aa3b358b4ae7cca94aceeb8e529c12ebb}\label{class_q_c_p_graph_ad60175cd9b5cac937c5ee685c32c0859aa3b358b4ae7cca94aceeb8e529c12ebb}} 
ls\+Impulse&each data point is represented by a line parallel to the value axis, which reaches from the data point to the zero-\/value-\/line \\
\hline

\end{DoxyEnumFields}


\subsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{class_q_c_p_graph_a0393a38cf7183cbf46348eb6cf9a5a6c}\label{class_q_c_p_graph_a0393a38cf7183cbf46348eb6cf9a5a6c}} 
\index{Q\+C\+P\+Graph@{Q\+C\+P\+Graph}!Q\+C\+P\+Graph@{Q\+C\+P\+Graph}}
\index{Q\+C\+P\+Graph@{Q\+C\+P\+Graph}!Q\+C\+P\+Graph@{Q\+C\+P\+Graph}}
\subsubsection{\texorpdfstring{Q\+C\+P\+Graph()}{QCPGraph()}}
{\footnotesize\ttfamily Q\+C\+P\+Graph\+::\+Q\+C\+P\+Graph (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{class_q_c_p_axis}{Q\+C\+P\+Axis}} $\ast$}]{key\+Axis,  }\item[{\mbox{\hyperlink{class_q_c_p_axis}{Q\+C\+P\+Axis}} $\ast$}]{value\+Axis }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [explicit]}}

Constructs a graph which uses {\itshape key\+Axis} as its key axis (\char`\"{}x\char`\"{}) and {\itshape value\+Axis} as its value axis (\char`\"{}y\char`\"{}). {\itshape key\+Axis} and {\itshape value\+Axis} must reside in the same \mbox{\hyperlink{class_q_custom_plot}{Q\+Custom\+Plot}} instance and not have the same orientation. If either of these restrictions is violated, a corresponding message is printed to the debug output (q\+Debug), the construction is not aborted, though.

The constructed \mbox{\hyperlink{class_q_c_p_graph}{Q\+C\+P\+Graph}} can be added to the plot with \mbox{\hyperlink{class_q_custom_plot_ab7ad9174f701f9c6f64e378df77927a6}{Q\+Custom\+Plot\+::add\+Plottable}}, \mbox{\hyperlink{class_q_custom_plot}{Q\+Custom\+Plot}} then takes ownership of the graph.

To directly create a graph inside a plot, you can also use the simpler \mbox{\hyperlink{class_q_custom_plot_a6fb2873d35a8a8089842d81a70a54167}{Q\+Custom\+Plot\+::add\+Graph}} function. 

\subsection{Member Function Documentation}
\mbox{\Hypertarget{class_q_c_p_graph_aa5c6181d84db72ce4dbe9dc15a34ef4f}\label{class_q_c_p_graph_aa5c6181d84db72ce4dbe9dc15a34ef4f}} 
\index{Q\+C\+P\+Graph@{Q\+C\+P\+Graph}!add\+Data@{add\+Data}}
\index{add\+Data@{add\+Data}!Q\+C\+P\+Graph@{Q\+C\+P\+Graph}}
\subsubsection{\texorpdfstring{add\+Data()}{addData()}\hspace{0.1cm}{\footnotesize\ttfamily [1/4]}}
{\footnotesize\ttfamily void Q\+C\+P\+Graph\+::add\+Data (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{qcustomplot_8h_a84a9c4a4c2216ccfdcb5f3067cda76e3}{Q\+C\+P\+Data\+Map}} \&}]{data\+Map }\end{DoxyParamCaption})}

Adds the provided data points in {\itshape data\+Map} to the current data.

Alternatively, you can also access and modify the graph\textquotesingle{}s data via the \mbox{\hyperlink{class_q_c_p_graph_acde1c0d1f6a817930489548396e6b3e6}{data}} method, which returns a pointer to the internal \mbox{\hyperlink{qcustomplot_8h_a84a9c4a4c2216ccfdcb5f3067cda76e3}{Q\+C\+P\+Data\+Map}}.

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{class_q_c_p_graph_a4a0fde50b7db9db0a85b5c5b6b10098f}{remove\+Data}} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{class_q_c_p_graph_a80cc91e1e0ef77eb50afc5b366d0efd9}\label{class_q_c_p_graph_a80cc91e1e0ef77eb50afc5b366d0efd9}} 
\index{Q\+C\+P\+Graph@{Q\+C\+P\+Graph}!add\+Data@{add\+Data}}
\index{add\+Data@{add\+Data}!Q\+C\+P\+Graph@{Q\+C\+P\+Graph}}
\subsubsection{\texorpdfstring{add\+Data()}{addData()}\hspace{0.1cm}{\footnotesize\ttfamily [2/4]}}
{\footnotesize\ttfamily void Q\+C\+P\+Graph\+::add\+Data (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{class_q_c_p_data}{Q\+C\+P\+Data}} \&}]{data }\end{DoxyParamCaption})}

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Adds the provided single data point in {\itshape data} to the current data.

Alternatively, you can also access and modify the graph\textquotesingle{}s data via the \mbox{\hyperlink{class_q_c_p_graph_acde1c0d1f6a817930489548396e6b3e6}{data}} method, which returns a pointer to the internal \mbox{\hyperlink{qcustomplot_8h_a84a9c4a4c2216ccfdcb5f3067cda76e3}{Q\+C\+P\+Data\+Map}}.

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{class_q_c_p_graph_a4a0fde50b7db9db0a85b5c5b6b10098f}{remove\+Data}} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{class_q_c_p_graph_a0bf98b1972286cfb7b1c4b7dd6ae2012}\label{class_q_c_p_graph_a0bf98b1972286cfb7b1c4b7dd6ae2012}} 
\index{Q\+C\+P\+Graph@{Q\+C\+P\+Graph}!add\+Data@{add\+Data}}
\index{add\+Data@{add\+Data}!Q\+C\+P\+Graph@{Q\+C\+P\+Graph}}
\subsubsection{\texorpdfstring{add\+Data()}{addData()}\hspace{0.1cm}{\footnotesize\ttfamily [3/4]}}
{\footnotesize\ttfamily void Q\+C\+P\+Graph\+::add\+Data (\begin{DoxyParamCaption}\item[{double}]{key,  }\item[{double}]{value }\end{DoxyParamCaption})}

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Adds the provided single data point as {\itshape key} and {\itshape value} pair to the current data.

Alternatively, you can also access and modify the graph\textquotesingle{}s data via the \mbox{\hyperlink{class_q_c_p_graph_acde1c0d1f6a817930489548396e6b3e6}{data}} method, which returns a pointer to the internal \mbox{\hyperlink{qcustomplot_8h_a84a9c4a4c2216ccfdcb5f3067cda76e3}{Q\+C\+P\+Data\+Map}}.

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{class_q_c_p_graph_a4a0fde50b7db9db0a85b5c5b6b10098f}{remove\+Data}} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{class_q_c_p_graph_ab6da6377541fe80d892a9893a92db9c6}\label{class_q_c_p_graph_ab6da6377541fe80d892a9893a92db9c6}} 
\index{Q\+C\+P\+Graph@{Q\+C\+P\+Graph}!add\+Data@{add\+Data}}
\index{add\+Data@{add\+Data}!Q\+C\+P\+Graph@{Q\+C\+P\+Graph}}
\subsubsection{\texorpdfstring{add\+Data()}{addData()}\hspace{0.1cm}{\footnotesize\ttfamily [4/4]}}
{\footnotesize\ttfamily void Q\+C\+P\+Graph\+::add\+Data (\begin{DoxyParamCaption}\item[{const Q\+Vector$<$ double $>$ \&}]{keys,  }\item[{const Q\+Vector$<$ double $>$ \&}]{values }\end{DoxyParamCaption})}

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Adds the provided data points as {\itshape key} and {\itshape value} pairs to the current data.

Alternatively, you can also access and modify the graph\textquotesingle{}s data via the \mbox{\hyperlink{class_q_c_p_graph_acde1c0d1f6a817930489548396e6b3e6}{data}} method, which returns a pointer to the internal \mbox{\hyperlink{qcustomplot_8h_a84a9c4a4c2216ccfdcb5f3067cda76e3}{Q\+C\+P\+Data\+Map}}.

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{class_q_c_p_graph_a4a0fde50b7db9db0a85b5c5b6b10098f}{remove\+Data}} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{class_q_c_p_graph_ad4e94a4e44e5e76fbec81a72a977157d}\label{class_q_c_p_graph_ad4e94a4e44e5e76fbec81a72a977157d}} 
\index{Q\+C\+P\+Graph@{Q\+C\+P\+Graph}!clear\+Data@{clear\+Data}}
\index{clear\+Data@{clear\+Data}!Q\+C\+P\+Graph@{Q\+C\+P\+Graph}}
\subsubsection{\texorpdfstring{clear\+Data()}{clearData()}}
{\footnotesize\ttfamily void Q\+C\+P\+Graph\+::clear\+Data (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}

Removes all data points. \begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{class_q_c_p_graph_a4a0fde50b7db9db0a85b5c5b6b10098f}{remove\+Data}}, \mbox{\hyperlink{class_q_c_p_graph_ae42d645ef617cfc75fc0df58e62c522a}{remove\+Data\+After}}, \mbox{\hyperlink{class_q_c_p_graph_a9fe0b3e54e8c7b61319bd03337e21e99}{remove\+Data\+Before}} 
\end{DoxySeeAlso}


Implements \mbox{\hyperlink{class_q_c_p_abstract_plottable_a86e5b8fd4b6ff4f4084e7ea4c573fc53}{Q\+C\+P\+Abstract\+Plottable}}.

\mbox{\Hypertarget{class_q_c_p_graph_acde1c0d1f6a817930489548396e6b3e6}\label{class_q_c_p_graph_acde1c0d1f6a817930489548396e6b3e6}} 
\index{Q\+C\+P\+Graph@{Q\+C\+P\+Graph}!data@{data}}
\index{data@{data}!Q\+C\+P\+Graph@{Q\+C\+P\+Graph}}
\subsubsection{\texorpdfstring{data()}{data()}}
{\footnotesize\ttfamily \mbox{\hyperlink{qcustomplot_8h_a84a9c4a4c2216ccfdcb5f3067cda76e3}{Q\+C\+P\+Data\+Map}} $\ast$ Q\+C\+P\+Graph\+::data (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

Returns a pointer to the internal data storage of type \mbox{\hyperlink{qcustomplot_8h_a84a9c4a4c2216ccfdcb5f3067cda76e3}{Q\+C\+P\+Data\+Map}}. You may use it to directly manipulate the data, which may be more convenient and faster than using the regular \mbox{\hyperlink{class_q_c_p_graph_a1df2fd710545c8ba3b2c99a39a27bf8b}{set\+Data}} or \mbox{\hyperlink{class_q_c_p_graph_aa5c6181d84db72ce4dbe9dc15a34ef4f}{add\+Data}} methods, in certain situations. \mbox{\Hypertarget{class_q_c_p_graph_ae6425d5df537c08159f794cb18c051c3}\label{class_q_c_p_graph_ae6425d5df537c08159f794cb18c051c3}} 
\index{Q\+C\+P\+Graph@{Q\+C\+P\+Graph}!get\+Key\+Range@{get\+Key\+Range}}
\index{get\+Key\+Range@{get\+Key\+Range}!Q\+C\+P\+Graph@{Q\+C\+P\+Graph}}
\subsubsection{\texorpdfstring{get\+Key\+Range()}{getKeyRange()}}
{\footnotesize\ttfamily \mbox{\hyperlink{class_q_c_p_range}{Q\+C\+P\+Range}} Q\+C\+P\+Graph\+::get\+Key\+Range (\begin{DoxyParamCaption}\item[{bool \&}]{found\+Range,  }\item[{\mbox{\hyperlink{class_q_c_p_abstract_plottable_a661743478a1d3c09d28ec2711d7653d8}{Sign\+Domain}}}]{in\+Sign\+Domain,  }\item[{bool}]{include\+Errors }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [virtual]}}

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Allows to specify whether the error bars should be included in the range calculation.

\begin{DoxySeeAlso}{See also}
get\+Key\+Range(bool \&found\+Range, Sign\+Domain in\+Sign\+Domain) 
\end{DoxySeeAlso}
\mbox{\Hypertarget{class_q_c_p_graph_ac23c7702ca836c7055f48e6fc3295ca4}\label{class_q_c_p_graph_ac23c7702ca836c7055f48e6fc3295ca4}} 
\index{Q\+C\+P\+Graph@{Q\+C\+P\+Graph}!get\+Value\+Range@{get\+Value\+Range}}
\index{get\+Value\+Range@{get\+Value\+Range}!Q\+C\+P\+Graph@{Q\+C\+P\+Graph}}
\subsubsection{\texorpdfstring{get\+Value\+Range()}{getValueRange()}}
{\footnotesize\ttfamily \mbox{\hyperlink{class_q_c_p_range}{Q\+C\+P\+Range}} Q\+C\+P\+Graph\+::get\+Value\+Range (\begin{DoxyParamCaption}\item[{bool \&}]{found\+Range,  }\item[{\mbox{\hyperlink{class_q_c_p_abstract_plottable_a661743478a1d3c09d28ec2711d7653d8}{Sign\+Domain}}}]{in\+Sign\+Domain,  }\item[{bool}]{include\+Errors }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [virtual]}}

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Allows to specify whether the error bars should be included in the range calculation.

\begin{DoxySeeAlso}{See also}
get\+Value\+Range(bool \&found\+Range, Sign\+Domain in\+Sign\+Domain) 
\end{DoxySeeAlso}
\mbox{\Hypertarget{class_q_c_p_graph_a4a0fde50b7db9db0a85b5c5b6b10098f}\label{class_q_c_p_graph_a4a0fde50b7db9db0a85b5c5b6b10098f}} 
\index{Q\+C\+P\+Graph@{Q\+C\+P\+Graph}!remove\+Data@{remove\+Data}}
\index{remove\+Data@{remove\+Data}!Q\+C\+P\+Graph@{Q\+C\+P\+Graph}}
\subsubsection{\texorpdfstring{remove\+Data()}{removeData()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily void Q\+C\+P\+Graph\+::remove\+Data (\begin{DoxyParamCaption}\item[{double}]{from\+Key,  }\item[{double}]{to\+Key }\end{DoxyParamCaption})}

Removes all data points with keys between {\itshape from\+Key} and {\itshape to\+Key}. if {\itshape from\+Key} is greater or equal to {\itshape to\+Key}, the function does nothing. To remove a single data point with known key, use \mbox{\hyperlink{class_q_c_p_graph_a4a706020b4318f118381648ef18aca3f}{remove\+Data(double key)}}.

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{class_q_c_p_graph_aa5c6181d84db72ce4dbe9dc15a34ef4f}{add\+Data}}, \mbox{\hyperlink{class_q_c_p_graph_ad4e94a4e44e5e76fbec81a72a977157d}{clear\+Data}} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{class_q_c_p_graph_a4a706020b4318f118381648ef18aca3f}\label{class_q_c_p_graph_a4a706020b4318f118381648ef18aca3f}} 
\index{Q\+C\+P\+Graph@{Q\+C\+P\+Graph}!remove\+Data@{remove\+Data}}
\index{remove\+Data@{remove\+Data}!Q\+C\+P\+Graph@{Q\+C\+P\+Graph}}
\subsubsection{\texorpdfstring{remove\+Data()}{removeData()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily void Q\+C\+P\+Graph\+::remove\+Data (\begin{DoxyParamCaption}\item[{double}]{key }\end{DoxyParamCaption})}

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Removes a single data point at {\itshape key}. If the position is not known with absolute precision, consider using \mbox{\hyperlink{class_q_c_p_graph_a4a0fde50b7db9db0a85b5c5b6b10098f}{remove\+Data(double from\+Key, double to\+Key)}} with a small fuzziness interval around the suspected position, depeding on the precision with which the key is known.

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{class_q_c_p_graph_aa5c6181d84db72ce4dbe9dc15a34ef4f}{add\+Data}}, \mbox{\hyperlink{class_q_c_p_graph_ad4e94a4e44e5e76fbec81a72a977157d}{clear\+Data}} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{class_q_c_p_graph_ae42d645ef617cfc75fc0df58e62c522a}\label{class_q_c_p_graph_ae42d645ef617cfc75fc0df58e62c522a}} 
\index{Q\+C\+P\+Graph@{Q\+C\+P\+Graph}!remove\+Data\+After@{remove\+Data\+After}}
\index{remove\+Data\+After@{remove\+Data\+After}!Q\+C\+P\+Graph@{Q\+C\+P\+Graph}}
\subsubsection{\texorpdfstring{remove\+Data\+After()}{removeDataAfter()}}
{\footnotesize\ttfamily void Q\+C\+P\+Graph\+::remove\+Data\+After (\begin{DoxyParamCaption}\item[{double}]{key }\end{DoxyParamCaption})}

Removes all data points with keys greater than {\itshape key}. \begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{class_q_c_p_graph_aa5c6181d84db72ce4dbe9dc15a34ef4f}{add\+Data}}, \mbox{\hyperlink{class_q_c_p_graph_ad4e94a4e44e5e76fbec81a72a977157d}{clear\+Data}} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{class_q_c_p_graph_a9fe0b3e54e8c7b61319bd03337e21e99}\label{class_q_c_p_graph_a9fe0b3e54e8c7b61319bd03337e21e99}} 
\index{Q\+C\+P\+Graph@{Q\+C\+P\+Graph}!remove\+Data\+Before@{remove\+Data\+Before}}
\index{remove\+Data\+Before@{remove\+Data\+Before}!Q\+C\+P\+Graph@{Q\+C\+P\+Graph}}
\subsubsection{\texorpdfstring{remove\+Data\+Before()}{removeDataBefore()}}
{\footnotesize\ttfamily void Q\+C\+P\+Graph\+::remove\+Data\+Before (\begin{DoxyParamCaption}\item[{double}]{key }\end{DoxyParamCaption})}

Removes all data points with keys smaller than {\itshape key}. \begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{class_q_c_p_graph_aa5c6181d84db72ce4dbe9dc15a34ef4f}{add\+Data}}, \mbox{\hyperlink{class_q_c_p_graph_ad4e94a4e44e5e76fbec81a72a977157d}{clear\+Data}} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{class_q_c_p_graph_a1491c4a606bccd2d09e65e11b79eb882}\label{class_q_c_p_graph_a1491c4a606bccd2d09e65e11b79eb882}} 
\index{Q\+C\+P\+Graph@{Q\+C\+P\+Graph}!rescale\+Axes@{rescale\+Axes}}
\index{rescale\+Axes@{rescale\+Axes}!Q\+C\+P\+Graph@{Q\+C\+P\+Graph}}
\subsubsection{\texorpdfstring{rescale\+Axes()}{rescaleAxes()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily void Q\+C\+P\+Abstract\+Plottable\+::rescale\+Axes}

Rescales the key and value axes associated with this plottable to contain all displayed data, so the whole plottable is visible. If the scaling of an axis is logarithmic, rescale\+Axes will make sure not to rescale to an illegal range i.\+e. a range containing different signs and/or zero. Instead it will stay in the current sign domain and ignore all parts of the plottable that lie outside of that domain.

{\itshape only\+Enlarge} makes sure the ranges are only expanded, never reduced. So it\textquotesingle{}s possible to show multiple plottables in their entirety by multiple calls to rescale\+Axes where the first call has {\itshape only\+Enlarge} set to false (the default), and all subsequent set to true.

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{class_q_c_p_graph_a051fb77b459ba1ae8d65552c67f45e94}{rescale\+Key\+Axis}}, \mbox{\hyperlink{class_q_c_p_graph_a9e0e620a56932c4df80a3762c2f93608}{rescale\+Value\+Axis}}, \mbox{\hyperlink{class_q_custom_plot_ad86528f2cee6c7e446dea4a6e8839935}{Q\+Custom\+Plot\+::rescale\+Axes}}, \mbox{\hyperlink{class_q_c_p_axis_a499345f02ebce4b23d8ccec96e58daa9}{Q\+C\+P\+Axis\+::rescale}} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{class_q_c_p_graph_a9c3909d6116e9d03978f057d41174e6a}\label{class_q_c_p_graph_a9c3909d6116e9d03978f057d41174e6a}} 
\index{Q\+C\+P\+Graph@{Q\+C\+P\+Graph}!rescale\+Axes@{rescale\+Axes}}
\index{rescale\+Axes@{rescale\+Axes}!Q\+C\+P\+Graph@{Q\+C\+P\+Graph}}
\subsubsection{\texorpdfstring{rescale\+Axes()}{rescaleAxes()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily void Q\+C\+P\+Graph\+::rescale\+Axes (\begin{DoxyParamCaption}\item[{bool}]{only\+Enlarge,  }\item[{bool}]{include\+Error\+Bars }\end{DoxyParamCaption}) const}

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Allows to define whether error bars are taken into consideration when determining the new axis range.

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{class_q_c_p_graph_a051fb77b459ba1ae8d65552c67f45e94}{rescale\+Key\+Axis}}, \mbox{\hyperlink{class_q_c_p_graph_a9e0e620a56932c4df80a3762c2f93608}{rescale\+Value\+Axis}}, \mbox{\hyperlink{class_q_c_p_abstract_plottable_a1491c4a606bccd2d09e65e11b79eb882}{Q\+C\+P\+Abstract\+Plottable\+::rescale\+Axes}}, \mbox{\hyperlink{class_q_custom_plot_ad86528f2cee6c7e446dea4a6e8839935}{Q\+Custom\+Plot\+::rescale\+Axes}} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{class_q_c_p_graph_ae96b83c961e257da116c6acf9c7da308}\label{class_q_c_p_graph_ae96b83c961e257da116c6acf9c7da308}} 
\index{Q\+C\+P\+Graph@{Q\+C\+P\+Graph}!rescale\+Key\+Axis@{rescale\+Key\+Axis}}
\index{rescale\+Key\+Axis@{rescale\+Key\+Axis}!Q\+C\+P\+Graph@{Q\+C\+P\+Graph}}
\subsubsection{\texorpdfstring{rescale\+Key\+Axis()}{rescaleKeyAxis()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily void Q\+C\+P\+Abstract\+Plottable\+::rescale\+Key\+Axis}

Rescales the key axis of the plottable so the whole plottable is visible.

See \mbox{\hyperlink{class_q_c_p_graph_a9c3909d6116e9d03978f057d41174e6a}{rescale\+Axes}} for detailed behaviour. \mbox{\Hypertarget{class_q_c_p_graph_a051fb77b459ba1ae8d65552c67f45e94}\label{class_q_c_p_graph_a051fb77b459ba1ae8d65552c67f45e94}} 
\index{Q\+C\+P\+Graph@{Q\+C\+P\+Graph}!rescale\+Key\+Axis@{rescale\+Key\+Axis}}
\index{rescale\+Key\+Axis@{rescale\+Key\+Axis}!Q\+C\+P\+Graph@{Q\+C\+P\+Graph}}
\subsubsection{\texorpdfstring{rescale\+Key\+Axis()}{rescaleKeyAxis()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily void Q\+C\+P\+Graph\+::rescale\+Key\+Axis (\begin{DoxyParamCaption}\item[{bool}]{only\+Enlarge,  }\item[{bool}]{include\+Error\+Bars }\end{DoxyParamCaption}) const}

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Allows to define whether error bars (of kind \mbox{\hyperlink{class_q_c_p_graph_ad23b514404bd2cb3216f57c90904d6afa2a5d89cd76fb8b6b18d71b8f6f6c0f43}{Q\+C\+P\+Graph\+::et\+Key}}) are taken into consideration when determining the new axis range.

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{class_q_c_p_graph_a9c3909d6116e9d03978f057d41174e6a}{rescale\+Axes}}, \mbox{\hyperlink{class_q_c_p_abstract_plottable_ae96b83c961e257da116c6acf9c7da308}{Q\+C\+P\+Abstract\+Plottable\+::rescale\+Key\+Axis}} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{class_q_c_p_graph_aa1e408bb2d13999150c3f7f8a8579ca9}\label{class_q_c_p_graph_aa1e408bb2d13999150c3f7f8a8579ca9}} 
\index{Q\+C\+P\+Graph@{Q\+C\+P\+Graph}!rescale\+Value\+Axis@{rescale\+Value\+Axis}}
\index{rescale\+Value\+Axis@{rescale\+Value\+Axis}!Q\+C\+P\+Graph@{Q\+C\+P\+Graph}}
\subsubsection{\texorpdfstring{rescale\+Value\+Axis()}{rescaleValueAxis()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily void Q\+C\+P\+Abstract\+Plottable\+::rescale\+Value\+Axis}

Rescales the value axis of the plottable so the whole plottable is visible.

Returns true if the axis was actually scaled. This might not be the case if this plottable has an invalid range, e.\+g. because it has no data points.

See \mbox{\hyperlink{class_q_c_p_graph_a9c3909d6116e9d03978f057d41174e6a}{rescale\+Axes}} for detailed behaviour. \mbox{\Hypertarget{class_q_c_p_graph_a9e0e620a56932c4df80a3762c2f93608}\label{class_q_c_p_graph_a9e0e620a56932c4df80a3762c2f93608}} 
\index{Q\+C\+P\+Graph@{Q\+C\+P\+Graph}!rescale\+Value\+Axis@{rescale\+Value\+Axis}}
\index{rescale\+Value\+Axis@{rescale\+Value\+Axis}!Q\+C\+P\+Graph@{Q\+C\+P\+Graph}}
\subsubsection{\texorpdfstring{rescale\+Value\+Axis()}{rescaleValueAxis()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily void Q\+C\+P\+Graph\+::rescale\+Value\+Axis (\begin{DoxyParamCaption}\item[{bool}]{only\+Enlarge,  }\item[{bool}]{include\+Error\+Bars }\end{DoxyParamCaption}) const}

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Allows to define whether error bars (of kind \mbox{\hyperlink{class_q_c_p_graph_ad23b514404bd2cb3216f57c90904d6afa147022ccdc49f6bd48f904cb4f61872e}{Q\+C\+P\+Graph\+::et\+Value}}) are taken into consideration when determining the new axis range.

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{class_q_c_p_graph_a9c3909d6116e9d03978f057d41174e6a}{rescale\+Axes}}, \mbox{\hyperlink{class_q_c_p_abstract_plottable_aa1e408bb2d13999150c3f7f8a8579ca9}{Q\+C\+P\+Abstract\+Plottable\+::rescale\+Value\+Axis}} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{class_q_c_p_graph_a36011c34aca4f7a477de25961e2f6c13}\label{class_q_c_p_graph_a36011c34aca4f7a477de25961e2f6c13}} 
\index{Q\+C\+P\+Graph@{Q\+C\+P\+Graph}!select\+Test@{select\+Test}}
\index{select\+Test@{select\+Test}!Q\+C\+P\+Graph@{Q\+C\+P\+Graph}}
\subsubsection{\texorpdfstring{select\+Test()}{selectTest()}}
{\footnotesize\ttfamily double Q\+C\+P\+Graph\+::select\+Test (\begin{DoxyParamCaption}\item[{const Q\+PointF \&}]{pos,  }\item[{bool}]{only\+Selectable,  }\item[{Q\+Variant $\ast$}]{details = {\ttfamily 0} }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [virtual]}}

This function is used to decide whether a click hits a layerable object or not.

{\itshape pos} is a point in pixel coordinates on the \mbox{\hyperlink{class_q_custom_plot}{Q\+Custom\+Plot}} surface. This function returns the shortest pixel distance of this point to the object. If the object is either invisible or the distance couldn\textquotesingle{}t be determined, -\/1.\+0 is returned. Further, if {\itshape only\+Selectable} is true and the object is not selectable, -\/1.\+0 is returned, too.

If the object is represented not by single lines but by an area like a \mbox{\hyperlink{class_q_c_p_item_text}{Q\+C\+P\+Item\+Text}} or the bars of a \mbox{\hyperlink{class_q_c_p_bars}{Q\+C\+P\+Bars}} plottable, a click inside the area should also be considered a hit. In these cases this function thus returns a constant value greater zero but still below the parent plot\textquotesingle{}s selection tolerance. (typically the selection\+Tolerance multiplied by 0.\+99).

Providing a constant value for area objects allows selecting line objects even when they are obscured by such area objects, by clicking close to the lines (i.\+e. closer than 0.\+99$\ast$selection\+Tolerance).

The actual setting of the selection state is not done by this function. This is handled by the parent \mbox{\hyperlink{class_q_custom_plot}{Q\+Custom\+Plot}} when the mouse\+Release\+Event occurs, and the finally selected object is notified via the select\+Event/deselect\+Event methods.

{\itshape details} is an optional output parameter. Every layerable subclass may place any information in {\itshape details}. This information will be passed to select\+Event when the parent \mbox{\hyperlink{class_q_custom_plot}{Q\+Custom\+Plot}} decides on the basis of this select\+Test call, that the object was successfully selected. The subsequent call to select\+Event will carry the {\itshape details}. This is useful for multi-\/part objects (like \mbox{\hyperlink{class_q_c_p_axis}{Q\+C\+P\+Axis}}). This way, a possibly complex calculation to decide which part was clicked is only done once in \mbox{\hyperlink{class_q_c_p_graph_a36011c34aca4f7a477de25961e2f6c13}{select\+Test}}. The result (i.\+e. the actually clicked part) can then be placed in {\itshape details}. So in the subsequent select\+Event, the decision which part was selected doesn\textquotesingle{}t have to be done a second time for a single selection operation.

You may pass 0 as {\itshape details} to indicate that you are not interested in those selection details.

\begin{DoxySeeAlso}{See also}
select\+Event, deselect\+Event, \mbox{\hyperlink{class_q_custom_plot_a5ee1e2f6ae27419deca53e75907c27e5}{Q\+Custom\+Plot\+::set\+Interactions}} 
\end{DoxySeeAlso}


Implements \mbox{\hyperlink{class_q_c_p_abstract_plottable_a38efe9641d972992a3d44204bc80ec1d}{Q\+C\+P\+Abstract\+Plottable}}.

\mbox{\Hypertarget{class_q_c_p_graph_ab468cd600160f327836aa0644291e64c}\label{class_q_c_p_graph_ab468cd600160f327836aa0644291e64c}} 
\index{Q\+C\+P\+Graph@{Q\+C\+P\+Graph}!set\+Adaptive\+Sampling@{set\+Adaptive\+Sampling}}
\index{set\+Adaptive\+Sampling@{set\+Adaptive\+Sampling}!Q\+C\+P\+Graph@{Q\+C\+P\+Graph}}
\subsubsection{\texorpdfstring{set\+Adaptive\+Sampling()}{setAdaptiveSampling()}}
{\footnotesize\ttfamily void Q\+C\+P\+Graph\+::set\+Adaptive\+Sampling (\begin{DoxyParamCaption}\item[{bool}]{enabled }\end{DoxyParamCaption})}

Sets whether adaptive sampling shall be used when plotting this graph. \mbox{\hyperlink{class_q_custom_plot}{Q\+Custom\+Plot}}\textquotesingle{}s adaptive sampling technique can drastically improve the replot performance for graphs with a larger number of points (e.\+g. above 10,000), without notably changing the appearance of the graph.

By default, adaptive sampling is enabled. Even if enabled, \mbox{\hyperlink{class_q_custom_plot}{Q\+Custom\+Plot}} decides whether adaptive sampling shall actually be used on a per-\/graph basis. So leaving adaptive sampling enabled has no disadvantage in almost all cases.

 As can be seen, line plots experience no visual degradation from adaptive sampling. Outliers are reproduced reliably, as well as the overall shape of the data set. The replot time reduces dramatically though. This allows \mbox{\hyperlink{class_q_custom_plot}{Q\+Custom\+Plot}} to display large amounts of data in realtime.

 Care must be taken when using high-\/density scatter plots in combination with adaptive sampling. The adaptive sampling algorithm treats scatter plots more carefully than line plots which still gives a significant reduction of replot times, but not quite as much as for line plots. This is because scatter plots inherently need more data points to be preserved in order to still resemble the original, non-\/adaptive-\/sampling plot. As shown above, the results still aren\textquotesingle{}t quite identical, as banding occurs for the outer data points. This is in fact intentional, such that the boundaries of the data cloud stay visible to the viewer. How strong the banding appears, depends on the point density, i.\+e. the number of points in the plot.

For some situations with scatter plots it might thus be desirable to manually turn adaptive sampling off. For example, when saving the plot to disk. This can be achieved by setting {\itshape enabled} to false before issuing a command like \mbox{\hyperlink{class_q_custom_plot_a7636261aff1f6d25c9da749ece3fc8b8}{Q\+Custom\+Plot\+::save\+Png}}, and setting {\itshape enabled} back to true afterwards. \mbox{\Hypertarget{class_q_c_p_graph_a2d03156df1b64037a2e36cfa50351ca3}\label{class_q_c_p_graph_a2d03156df1b64037a2e36cfa50351ca3}} 
\index{Q\+C\+P\+Graph@{Q\+C\+P\+Graph}!set\+Channel\+Fill\+Graph@{set\+Channel\+Fill\+Graph}}
\index{set\+Channel\+Fill\+Graph@{set\+Channel\+Fill\+Graph}!Q\+C\+P\+Graph@{Q\+C\+P\+Graph}}
\subsubsection{\texorpdfstring{set\+Channel\+Fill\+Graph()}{setChannelFillGraph()}}
{\footnotesize\ttfamily void Q\+C\+P\+Graph\+::set\+Channel\+Fill\+Graph (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{class_q_c_p_graph}{Q\+C\+P\+Graph}} $\ast$}]{target\+Graph }\end{DoxyParamCaption})}

Sets the target graph for filling the area between this graph and {\itshape target\+Graph} with the current brush (\mbox{\hyperlink{class_q_c_p_abstract_plottable_a7a4b92144dca6453a1f0f210e27edc74}{set\+Brush}}).

When {\itshape target\+Graph} is set to 0, a normal graph fill to the zero-\/value-\/line will be shown. To disable any filling, set the brush to Qt\+::\+No\+Brush.

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{class_q_c_p_abstract_plottable_a7a4b92144dca6453a1f0f210e27edc74}{set\+Brush}} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{class_q_c_p_graph_a1df2fd710545c8ba3b2c99a39a27bf8b}\label{class_q_c_p_graph_a1df2fd710545c8ba3b2c99a39a27bf8b}} 
\index{Q\+C\+P\+Graph@{Q\+C\+P\+Graph}!set\+Data@{set\+Data}}
\index{set\+Data@{set\+Data}!Q\+C\+P\+Graph@{Q\+C\+P\+Graph}}
\subsubsection{\texorpdfstring{set\+Data()}{setData()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily void Q\+C\+P\+Graph\+::set\+Data (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{qcustomplot_8h_a84a9c4a4c2216ccfdcb5f3067cda76e3}{Q\+C\+P\+Data\+Map}} $\ast$}]{data,  }\item[{bool}]{copy = {\ttfamily false} }\end{DoxyParamCaption})}

Replaces the current data with the provided {\itshape data}.

If {\itshape copy} is set to true, data points in {\itshape data} will only be copied. if false, the graph takes ownership of the passed data and replaces the internal data pointer with it. This is significantly faster than copying for large datasets.

Alternatively, you can also access and modify the graph\textquotesingle{}s data via the \mbox{\hyperlink{class_q_c_p_graph_acde1c0d1f6a817930489548396e6b3e6}{data}} method, which returns a pointer to the internal \mbox{\hyperlink{qcustomplot_8h_a84a9c4a4c2216ccfdcb5f3067cda76e3}{Q\+C\+P\+Data\+Map}}. \mbox{\Hypertarget{class_q_c_p_graph_a4c55d8ac13bfa42c8c93747820891a76}\label{class_q_c_p_graph_a4c55d8ac13bfa42c8c93747820891a76}} 
\index{Q\+C\+P\+Graph@{Q\+C\+P\+Graph}!set\+Data@{set\+Data}}
\index{set\+Data@{set\+Data}!Q\+C\+P\+Graph@{Q\+C\+P\+Graph}}
\subsubsection{\texorpdfstring{set\+Data()}{setData()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily void Q\+C\+P\+Graph\+::set\+Data (\begin{DoxyParamCaption}\item[{const Q\+Vector$<$ double $>$ \&}]{key,  }\item[{const Q\+Vector$<$ double $>$ \&}]{value }\end{DoxyParamCaption})}

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Replaces the current data with the provided points in {\itshape key} and {\itshape value} pairs. The provided vectors should have equal length. Else, the number of added points will be the size of the smallest vector. \mbox{\Hypertarget{class_q_c_p_graph_a873fe46bdb20be5710428e474ade8908}\label{class_q_c_p_graph_a873fe46bdb20be5710428e474ade8908}} 
\index{Q\+C\+P\+Graph@{Q\+C\+P\+Graph}!set\+Data\+Both\+Error@{set\+Data\+Both\+Error}}
\index{set\+Data\+Both\+Error@{set\+Data\+Both\+Error}!Q\+C\+P\+Graph@{Q\+C\+P\+Graph}}
\subsubsection{\texorpdfstring{set\+Data\+Both\+Error()}{setDataBothError()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily void Q\+C\+P\+Graph\+::set\+Data\+Both\+Error (\begin{DoxyParamCaption}\item[{const Q\+Vector$<$ double $>$ \&}]{key,  }\item[{const Q\+Vector$<$ double $>$ \&}]{value,  }\item[{const Q\+Vector$<$ double $>$ \&}]{key\+Error,  }\item[{const Q\+Vector$<$ double $>$ \&}]{value\+Error }\end{DoxyParamCaption})}

Replaces the current data with the provided points in {\itshape key} and {\itshape value} pairs. Additionally the symmetrical key and value errors of the data points are set to the values in {\itshape key\+Error} and {\itshape value\+Error}. For error bars to show appropriately, see \mbox{\hyperlink{class_q_c_p_graph_ac3614d799c3894f2bc646e99c7f73d38}{set\+Error\+Type}}. The provided vectors should have equal length. Else, the number of added points will be the size of the smallest vector.

For asymmetrical errors (plus different from minus), see the overloaded version of this function. \mbox{\Hypertarget{class_q_c_p_graph_abb75736ecdbf6e6a7501e1da64fb18cf}\label{class_q_c_p_graph_abb75736ecdbf6e6a7501e1da64fb18cf}} 
\index{Q\+C\+P\+Graph@{Q\+C\+P\+Graph}!set\+Data\+Both\+Error@{set\+Data\+Both\+Error}}
\index{set\+Data\+Both\+Error@{set\+Data\+Both\+Error}!Q\+C\+P\+Graph@{Q\+C\+P\+Graph}}
\subsubsection{\texorpdfstring{set\+Data\+Both\+Error()}{setDataBothError()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily void Q\+C\+P\+Graph\+::set\+Data\+Both\+Error (\begin{DoxyParamCaption}\item[{const Q\+Vector$<$ double $>$ \&}]{key,  }\item[{const Q\+Vector$<$ double $>$ \&}]{value,  }\item[{const Q\+Vector$<$ double $>$ \&}]{key\+Error\+Minus,  }\item[{const Q\+Vector$<$ double $>$ \&}]{key\+Error\+Plus,  }\item[{const Q\+Vector$<$ double $>$ \&}]{value\+Error\+Minus,  }\item[{const Q\+Vector$<$ double $>$ \&}]{value\+Error\+Plus }\end{DoxyParamCaption})}

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Replaces the current data with the provided points in {\itshape key} and {\itshape value} pairs. Additionally the negative key and value errors of the data points are set to the values in {\itshape key\+Error\+Minus} and {\itshape value\+Error\+Minus}. The positive key and value errors are set to the values in {\itshape key\+Error\+Plus} {\itshape value\+Error\+Plus}. For error bars to show appropriately, see \mbox{\hyperlink{class_q_c_p_graph_ac3614d799c3894f2bc646e99c7f73d38}{set\+Error\+Type}}. The provided vectors should have equal length. Else, the number of added points will be the size of the smallest vector. \mbox{\Hypertarget{class_q_c_p_graph_abce9f07c0d722bc3e4fa7bd73c7e5dfa}\label{class_q_c_p_graph_abce9f07c0d722bc3e4fa7bd73c7e5dfa}} 
\index{Q\+C\+P\+Graph@{Q\+C\+P\+Graph}!set\+Data\+Key\+Error@{set\+Data\+Key\+Error}}
\index{set\+Data\+Key\+Error@{set\+Data\+Key\+Error}!Q\+C\+P\+Graph@{Q\+C\+P\+Graph}}
\subsubsection{\texorpdfstring{set\+Data\+Key\+Error()}{setDataKeyError()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily void Q\+C\+P\+Graph\+::set\+Data\+Key\+Error (\begin{DoxyParamCaption}\item[{const Q\+Vector$<$ double $>$ \&}]{key,  }\item[{const Q\+Vector$<$ double $>$ \&}]{value,  }\item[{const Q\+Vector$<$ double $>$ \&}]{key\+Error }\end{DoxyParamCaption})}

Replaces the current data with the provided points in {\itshape key} and {\itshape value} pairs. Additionally the symmetrical key error of the data points are set to the values in {\itshape key\+Error}. For error bars to show appropriately, see \mbox{\hyperlink{class_q_c_p_graph_ac3614d799c3894f2bc646e99c7f73d38}{set\+Error\+Type}}. The provided vectors should have equal length. Else, the number of added points will be the size of the smallest vector.

For asymmetrical errors (plus different from minus), see the overloaded version of this function. \mbox{\Hypertarget{class_q_c_p_graph_ac15c749c5fedf740d5692c6fe67143b8}\label{class_q_c_p_graph_ac15c749c5fedf740d5692c6fe67143b8}} 
\index{Q\+C\+P\+Graph@{Q\+C\+P\+Graph}!set\+Data\+Key\+Error@{set\+Data\+Key\+Error}}
\index{set\+Data\+Key\+Error@{set\+Data\+Key\+Error}!Q\+C\+P\+Graph@{Q\+C\+P\+Graph}}
\subsubsection{\texorpdfstring{set\+Data\+Key\+Error()}{setDataKeyError()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily void Q\+C\+P\+Graph\+::set\+Data\+Key\+Error (\begin{DoxyParamCaption}\item[{const Q\+Vector$<$ double $>$ \&}]{key,  }\item[{const Q\+Vector$<$ double $>$ \&}]{value,  }\item[{const Q\+Vector$<$ double $>$ \&}]{key\+Error\+Minus,  }\item[{const Q\+Vector$<$ double $>$ \&}]{key\+Error\+Plus }\end{DoxyParamCaption})}

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Replaces the current data with the provided points in {\itshape key} and {\itshape value} pairs. Additionally the negative key error of the data points are set to the values in {\itshape key\+Error\+Minus}, the positive key error to {\itshape key\+Error\+Plus}. For error bars to show appropriately, see \mbox{\hyperlink{class_q_c_p_graph_ac3614d799c3894f2bc646e99c7f73d38}{set\+Error\+Type}}. The provided vectors should have equal length. Else, the number of added points will be the size of the smallest vector. \mbox{\Hypertarget{class_q_c_p_graph_acba6296eadcb36b93267628b8dae3de5}\label{class_q_c_p_graph_acba6296eadcb36b93267628b8dae3de5}} 
\index{Q\+C\+P\+Graph@{Q\+C\+P\+Graph}!set\+Data\+Value\+Error@{set\+Data\+Value\+Error}}
\index{set\+Data\+Value\+Error@{set\+Data\+Value\+Error}!Q\+C\+P\+Graph@{Q\+C\+P\+Graph}}
\subsubsection{\texorpdfstring{set\+Data\+Value\+Error()}{setDataValueError()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily void Q\+C\+P\+Graph\+::set\+Data\+Value\+Error (\begin{DoxyParamCaption}\item[{const Q\+Vector$<$ double $>$ \&}]{key,  }\item[{const Q\+Vector$<$ double $>$ \&}]{value,  }\item[{const Q\+Vector$<$ double $>$ \&}]{value\+Error }\end{DoxyParamCaption})}

Replaces the current data with the provided points in {\itshape key} and {\itshape value} pairs. Additionally the symmetrical value error of the data points are set to the values in {\itshape value\+Error}. For error bars to show appropriately, see \mbox{\hyperlink{class_q_c_p_graph_ac3614d799c3894f2bc646e99c7f73d38}{set\+Error\+Type}}. The provided vectors should have equal length. Else, the number of added points will be the size of the smallest vector.

For asymmetrical errors (plus different from minus), see the overloaded version of this function. \mbox{\Hypertarget{class_q_c_p_graph_a3afbfd7222d739351c69387904776f93}\label{class_q_c_p_graph_a3afbfd7222d739351c69387904776f93}} 
\index{Q\+C\+P\+Graph@{Q\+C\+P\+Graph}!set\+Data\+Value\+Error@{set\+Data\+Value\+Error}}
\index{set\+Data\+Value\+Error@{set\+Data\+Value\+Error}!Q\+C\+P\+Graph@{Q\+C\+P\+Graph}}
\subsubsection{\texorpdfstring{set\+Data\+Value\+Error()}{setDataValueError()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily void Q\+C\+P\+Graph\+::set\+Data\+Value\+Error (\begin{DoxyParamCaption}\item[{const Q\+Vector$<$ double $>$ \&}]{key,  }\item[{const Q\+Vector$<$ double $>$ \&}]{value,  }\item[{const Q\+Vector$<$ double $>$ \&}]{value\+Error\+Minus,  }\item[{const Q\+Vector$<$ double $>$ \&}]{value\+Error\+Plus }\end{DoxyParamCaption})}

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Replaces the current data with the provided points in {\itshape key} and {\itshape value} pairs. Additionally the negative value error of the data points are set to the values in {\itshape value\+Error\+Minus}, the positive value error to {\itshape value\+Error\+Plus}. For error bars to show appropriately, see \mbox{\hyperlink{class_q_c_p_graph_ac3614d799c3894f2bc646e99c7f73d38}{set\+Error\+Type}}. The provided vectors should have equal length. Else, the number of added points will be the size of the smallest vector. \mbox{\Hypertarget{class_q_c_p_graph_a10f50c5495ce45ef559ec2066194a335}\label{class_q_c_p_graph_a10f50c5495ce45ef559ec2066194a335}} 
\index{Q\+C\+P\+Graph@{Q\+C\+P\+Graph}!set\+Error\+Bar\+Size@{set\+Error\+Bar\+Size}}
\index{set\+Error\+Bar\+Size@{set\+Error\+Bar\+Size}!Q\+C\+P\+Graph@{Q\+C\+P\+Graph}}
\subsubsection{\texorpdfstring{set\+Error\+Bar\+Size()}{setErrorBarSize()}}
{\footnotesize\ttfamily void Q\+C\+P\+Graph\+::set\+Error\+Bar\+Size (\begin{DoxyParamCaption}\item[{double}]{size }\end{DoxyParamCaption})}

Sets the width of the handles at both ends of an error bar in pixels. \mbox{\Hypertarget{class_q_c_p_graph_ab1c1ee03d8dd94676a564e5e5f11aac2}\label{class_q_c_p_graph_ab1c1ee03d8dd94676a564e5e5f11aac2}} 
\index{Q\+C\+P\+Graph@{Q\+C\+P\+Graph}!set\+Error\+Bar\+Skip\+Symbol@{set\+Error\+Bar\+Skip\+Symbol}}
\index{set\+Error\+Bar\+Skip\+Symbol@{set\+Error\+Bar\+Skip\+Symbol}!Q\+C\+P\+Graph@{Q\+C\+P\+Graph}}
\subsubsection{\texorpdfstring{set\+Error\+Bar\+Skip\+Symbol()}{setErrorBarSkipSymbol()}}
{\footnotesize\ttfamily void Q\+C\+P\+Graph\+::set\+Error\+Bar\+Skip\+Symbol (\begin{DoxyParamCaption}\item[{bool}]{enabled }\end{DoxyParamCaption})}

If {\itshape enabled} is set to true, the error bar will not be drawn as a solid line under the scatter symbol but leave some free space around the symbol.

This feature uses the current scatter size (\mbox{\hyperlink{class_q_c_p_scatter_style_aaefdd031052892c4136129db68596e0f}{Q\+C\+P\+Scatter\+Style\+::set\+Size}}) to determine the size of the area to leave blank. So when drawing Pixmaps as scatter points (\mbox{\hyperlink{class_q_c_p_scatter_style_adb31525af6b680e6f1b7472e43859349a8718b849ca7c307b07b8e091efb0c31e}{Q\+C\+P\+Scatter\+Style\+::ss\+Pixmap}}), the scatter size must be set manually to a value corresponding to the size of the Pixmap, if the error bars should leave gaps to its boundaries.

\mbox{\hyperlink{class_q_c_p_graph_ac3614d799c3894f2bc646e99c7f73d38}{set\+Error\+Type}}, set\+Error\+Bar\+Size, set\+Scatter\+Style \mbox{\Hypertarget{class_q_c_p_graph_abd4c7f81939e10776ea64603a704f22a}\label{class_q_c_p_graph_abd4c7f81939e10776ea64603a704f22a}} 
\index{Q\+C\+P\+Graph@{Q\+C\+P\+Graph}!set\+Error\+Pen@{set\+Error\+Pen}}
\index{set\+Error\+Pen@{set\+Error\+Pen}!Q\+C\+P\+Graph@{Q\+C\+P\+Graph}}
\subsubsection{\texorpdfstring{set\+Error\+Pen()}{setErrorPen()}}
{\footnotesize\ttfamily void Q\+C\+P\+Graph\+::set\+Error\+Pen (\begin{DoxyParamCaption}\item[{const Q\+Pen \&}]{pen }\end{DoxyParamCaption})}

Sets the pen with which the error bars will be drawn. \begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{class_q_c_p_graph_a10f50c5495ce45ef559ec2066194a335}{set\+Error\+Bar\+Size}}, \mbox{\hyperlink{class_q_c_p_graph_ac3614d799c3894f2bc646e99c7f73d38}{set\+Error\+Type}} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{class_q_c_p_graph_ac3614d799c3894f2bc646e99c7f73d38}\label{class_q_c_p_graph_ac3614d799c3894f2bc646e99c7f73d38}} 
\index{Q\+C\+P\+Graph@{Q\+C\+P\+Graph}!set\+Error\+Type@{set\+Error\+Type}}
\index{set\+Error\+Type@{set\+Error\+Type}!Q\+C\+P\+Graph@{Q\+C\+P\+Graph}}
\subsubsection{\texorpdfstring{set\+Error\+Type()}{setErrorType()}}
{\footnotesize\ttfamily void Q\+C\+P\+Graph\+::set\+Error\+Type (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{class_q_c_p_graph_ad23b514404bd2cb3216f57c90904d6af}{Error\+Type}}}]{error\+Type }\end{DoxyParamCaption})}

Sets which kind of error bars (Key Error, Value Error or both) should be drawn on each data point. If you set {\itshape error\+Type} to something other than \mbox{\hyperlink{class_q_c_p_graph_ad23b514404bd2cb3216f57c90904d6afaeae745e7cc1766bb8546e35d4b76a711}{et\+None}}, make sure to actually pass error data via the specific set\+Data functions along with the data points (e.\+g. \mbox{\hyperlink{class_q_c_p_graph_acba6296eadcb36b93267628b8dae3de5}{set\+Data\+Value\+Error}}, \mbox{\hyperlink{class_q_c_p_graph_abce9f07c0d722bc3e4fa7bd73c7e5dfa}{set\+Data\+Key\+Error}}, \mbox{\hyperlink{class_q_c_p_graph_a873fe46bdb20be5710428e474ade8908}{set\+Data\+Both\+Error}}).

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{class_q_c_p_graph_ad23b514404bd2cb3216f57c90904d6af}{Error\+Type}} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{class_q_c_p_graph_a513fecccff5b2a50ce53f665338c60ff}\label{class_q_c_p_graph_a513fecccff5b2a50ce53f665338c60ff}} 
\index{Q\+C\+P\+Graph@{Q\+C\+P\+Graph}!set\+Line\+Style@{set\+Line\+Style}}
\index{set\+Line\+Style@{set\+Line\+Style}!Q\+C\+P\+Graph@{Q\+C\+P\+Graph}}
\subsubsection{\texorpdfstring{set\+Line\+Style()}{setLineStyle()}}
{\footnotesize\ttfamily void Q\+C\+P\+Graph\+::set\+Line\+Style (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{class_q_c_p_graph_ad60175cd9b5cac937c5ee685c32c0859}{Line\+Style}}}]{ls }\end{DoxyParamCaption})}

Sets how the single data points are connected in the plot. For scatter-\/only plots, set {\itshape ls} to \mbox{\hyperlink{class_q_c_p_graph_ad60175cd9b5cac937c5ee685c32c0859aea9591b933733cc7b20786b71e60fa04}{ls\+None}} and \mbox{\hyperlink{class_q_c_p_graph_a12bd17a8ba21983163ec5d8f42a9fea5}{set\+Scatter\+Style}} to the desired scatter style.

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{class_q_c_p_graph_a12bd17a8ba21983163ec5d8f42a9fea5}{set\+Scatter\+Style}} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{class_q_c_p_graph_a12bd17a8ba21983163ec5d8f42a9fea5}\label{class_q_c_p_graph_a12bd17a8ba21983163ec5d8f42a9fea5}} 
\index{Q\+C\+P\+Graph@{Q\+C\+P\+Graph}!set\+Scatter\+Style@{set\+Scatter\+Style}}
\index{set\+Scatter\+Style@{set\+Scatter\+Style}!Q\+C\+P\+Graph@{Q\+C\+P\+Graph}}
\subsubsection{\texorpdfstring{set\+Scatter\+Style()}{setScatterStyle()}}
{\footnotesize\ttfamily void Q\+C\+P\+Graph\+::set\+Scatter\+Style (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{class_q_c_p_scatter_style}{Q\+C\+P\+Scatter\+Style}} \&}]{style }\end{DoxyParamCaption})}

Sets the visual appearance of single data points in the plot. If set to \mbox{\hyperlink{class_q_c_p_scatter_style_adb31525af6b680e6f1b7472e43859349abd144c291ca274f77053ec68cab6c022}{Q\+C\+P\+Scatter\+Style\+::ss\+None}}, no scatter points are drawn (e.\+g. for line-\/only-\/plots with appropriate line style).

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{class_q_c_p_scatter_style}{Q\+C\+P\+Scatter\+Style}}, \mbox{\hyperlink{class_q_c_p_graph_a513fecccff5b2a50ce53f665338c60ff}{set\+Line\+Style}} 
\end{DoxySeeAlso}


The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item 
R\+:/\+Develop/a0-\/develop/\+Lib\+Q\+Qt/src/charts/qcustomplot/\mbox{\hyperlink{qcustomplot_8h}{qcustomplot.\+h}}\item 
R\+:/\+Develop/a0-\/develop/\+Lib\+Q\+Qt/src/charts/qcustomplot/\mbox{\hyperlink{qcustomplot_8cpp}{qcustomplot.\+cpp}}\end{DoxyCompactItemize}
